package com.deco.dao.warpper.product;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.deco.dao.delegate.product.IPartsCategoryDao;
import com.deco.dao.domain.table.PartsCategory;
import com.deco.dao.domain.table.StoreJoin;
import com.deco.dao.logic.product.PartsCategoryDao;
import com.deco.domain.vo.product.PartsCategoryVo;
import com.free.common.vo.PageResponseVo;
import com.free.ext.mybatis.model.entity.PageResponseModel;
import com.free.ext.mybatis.warpper.BaseDaoWarpper;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
@Repository
public class PartsCategoryDaoWarpper extends BaseDaoWarpper<PartsCategoryVo,Integer,PartsCategory> implements IPartsCategoryDao {

    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    @Autowired
    private PartsCategoryDao partsCategoryDao;

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    @Override
    public void registerEnums() {

    }

	@Override
	public PageResponseVo<PartsCategoryVo> selectByPageNoNameLike(
			PartsCategoryVo conditionVo, String orderBy, Integer currentNo,
			Integer length) {
		PartsCategory tbl = convertToTable(conditionVo);
        PageResponseModel<PartsCategory> pgModel = partsCategoryDao.selectByPageNoNameLike(tbl, orderBy, currentNo, length);
        return convertToViewResponseVo(pgModel);
	}

	@Override
	public int batchDelete(Integer[] ids) {
		return partsCategoryDao.batchDelete(ids);
	}

	@Override
	public List<PartsCategoryVo> selectCategoryList(PartsCategoryVo tbl) {
		PartsCategory condition = convertToTable(tbl);
		List<PartsCategory> res = partsCategoryDao.selectCategoryList(condition);
		if(res == null || res.size() ==0){
			return new ArrayList<>();
		}
		List<PartsCategoryVo> lst = new ArrayList<>();
		res.forEach(x->{
			lst.add(convertToView(x));
		});
		return lst;
	}

	/*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
